package com.kcht.itsed.mws.alefacade.stdfacade;

import com.kcht.itsed.mws.alefacade.exceptions.*;
import com.kcht.itsed.mws.alemodel.AssocTableEntryList;
import com.kcht.itsed.mws.alemodel.AssocTableSpec;
import com.kcht.itsed.mws.alemodel.EPCPatternList;

import java.util.List;

interface ALECC_AssociationTable {

	void defineAssocTable(String tableName, AssocTableSpec spec, AssocTableEntryList entries)throws DuplicateNameException, AssocTableValidationException, InvalidAssocTableEntryException;

	void undefineAssocTable(String tableName)throws NoSuchNameException ,InUseException;

	List<String> getAssocTableNames();

	AssocTableSpec getAssocTable(String tableName)throws NoSuchNameException;

	void putAssocTableEntries(String tableName, AssocTableEntryList entries)throws NoSuchNameException, InvalidAssocTableEntryException;

	String getAssocTableValue(String tableName, String epc)throws NoSuchNameException, InvalidEPCException;

	AssocTableEntryList getAssocTableEntres(String tableName, EPCPatternList patList)throws NoSuchNameException;

	void removeAssocTableEntry(String tableName, String epc)throws NoSuchNameException,InvalidEPCException;

	void removeAssocTableEntries(String tableName, EPCPatternList patList)throws NoSuchNameException ,InvalidPatternException;
	
	
}
